package com.comment.pojo.domain.logic.core;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import java.io.Serializable;
import java.util.HashMap;
import java.util.Map;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.*;

/**
 * 人机编队(CoreRobotTeams)表实体类
 *
 * @author cxy
 * @since 2024-12-02 15:12:08
 */
@ApiModel("人机编队")
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
@EqualsAndHashCode(callSuper = true)
public class CoreRobotTeams extends Model<CoreRobotTeams> {// swagger2,mybatis-plus
    ///////////////////////////////////////////////////////////////////////////////////////////////////////// 生成实体字段
    @TableId(type = IdType.AUTO)
    @ApiModelProperty("人机队伍id")
    private Integer id;
    
    @ApiModelProperty("队伍名称")
    private String name;
    
    @ApiModelProperty("1号位人机英雄id")
    private Long robotId1;
    
    @ApiModelProperty("1号位人机英雄兵力")
    private Long armyCount1;
    
    @ApiModelProperty("2号位人机英雄id")
    private Long robotId2;
    
    @ApiModelProperty("2号位人机英雄兵力")
    private Long armyCount2;
    
    @ApiModelProperty("3号位人机英雄id")
    private Long robotId3;
    
    @ApiModelProperty("3号位人机英雄兵力")
    private Long armyCount3;
    
    @ApiModelProperty("难度")
    private Integer difficulty;
    
    ///////////////////////////////////////////////////////////////////////////////////////////////////////// 序列化版本号
    @TableField(exist = false)
    private static final long serialVersionUID = -54970648673448372L;
    /////////////////////////////////////////////////////////////////////////////////////////////////////////// 获取主键值
    @Override
    public Serializable pkVal() {
        return this.id;
    }
    ///////////////////////////////////////////////////////////////////////////////////////////////////////  基础数据初始化
    public CoreRobotTeams init() {
        return this;
    }
    /////////////////////////////////////////////////////////////////////////////////////////////////////////// 领域业务

    /**
     * 获取人机编队中的英雄id和兵力
     */
    public Map<Long, Long> obtainRobotIdsAndForce() {
        HashMap<Long, Long> hashMap = new HashMap<>();
        hashMap.put(robotId1, armyCount1);
        hashMap.put(robotId2, armyCount2);
        hashMap.put(robotId3, armyCount3);
        return hashMap;
    }
}

